# 1.计算10000以内所有3,7,13,19,23,29的倍数的正整数的和并分别打印出来

# for number_2 in [3,7,13,19,23,29]:
#     number_sum = 0
#     for number_1 in range(10001):
#         if number_1%number_2 == 0:
#             number_sum += number_1
    
#     print(f"10000以内所有{number_2}的倍数的正整数的和是:", number_sum)

# 2.查找资料，将常用汉字（20000个左右）及其unicode编码（十六进制形式） 打印出来
#   要求： 汉字的unicode编码（十六进制形式）的前两位相同的放在同一行，比如：
#   0x4e0a  0x4e0b  0x4e0c  ...
#   上      下      不       ...
#   0x4f0a  0x4f0b  0x4f0c  ...
#   伊      伋      伌       ...

start = 0x4E00
end = 0x9FFF

unicode_dict = {}

for codepoint in range(start, end + 1):
    hex_code = hex(codepoint)
    char = chr(codepoint)
    
    prefix = hex_code[:4]
    
    if prefix not in unicode_dict:
        unicode_dict[prefix] = []
    
    unicode_dict[prefix].append(f"{hex_code} {char}")

for prefix, items in unicode_dict.items():
    print("  ".join(items))


# 3.生成并打印2021年的日历，要求以类似如下格式打印：
# 【注】请不要使用calender模块，请查找日历找到2021年第一个月的排布，然后根据规律进行计算。
# 2019

#       January                   February                   March
# Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
#     1  2  3  4  5  6                   1  2  3                   1  2  3
#  7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10
# 14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17
# 21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24
# 28 29 30 31               25 26 27 28               25 26 27 28 29 30 31

#        April                      May                       June
# Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
#  1  2  3  4  5  6  7             1  2  3  4  5                      1  2
#  8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9
# 15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16
# 22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23
# 29 30                     27 28 29 30 31            24 25 26 27 28 29 30

#         July                     August                  September
# Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
#  1  2  3  4  5  6  7                1  2  3  4                         1
#  8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8
# 15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15
# 22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22
# 29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29
#                                                     30

#       October                   November                  December
# Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
#     1  2  3  4  5  6                   1  2  3                         1
#  7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8
# 14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15
# 21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22
# 28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29
#                                                     30 31
